@startuml

legend right
    | Цвет | Тип |
    |<#lightgreen>| Доверенный компонент |
    |<#lightgray>| Недоверенный компонент |
endlegend

rectangle {
    (Update)
    (Application)
}

:User: ---> Application: используя HTTP,\nработает с
Application <- Update: обновляет файлы

(Manager)
(File server) as server
(Downloader) as downloader
(Verifier) #lightgreen
(Storage)
(Message bus) as kafka #lightgreen
(Security monitor) as monitor #lightgreen 
artifact "application update" as update
artifact "update files" as updates

update ..> server: хранится в
:User: ..> server: используя REST,\nзапрашивает цифровую подпись\nобновления у
downloader -up-> server: используя HTTP,\nскачивает из
updates ..> Storage: хранится в

Update -down-> kafka
downloader -down-> kafka
Storage -down-> kafka
Manager -down-> kafka
Verifier -down-> kafka
monitor -up-> kafka


@enduml